home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 43.zip / Sources C- WorkDisk V.adf / image / imagebs3.c < prev   
C/C++ Source or Header  |  1987-02-15  |  6KB  |  245 lines

  1. #include "exec/types.h"
  2. #include "intuition/intuition.h"
  3.  
  4. struct IntuitionBase *IntuitionBase;
  5. struct Window *NoBorder;
  6. struct GfxBase *GfxBase;
  7. struct IntuiMessage *mesg;
  8. struct RastPort *r;
  9. struct ViewPort *vp;
  10. struct Screen *Scrn;
  11.  
  12. USHORT bs1smallData[] =
  13. {
  14. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  15. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  16. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  17. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  18. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  19. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  20. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  21. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  22. 0x0000,0xffff,0xffff,0xfffF,0xffff,0x0000,
  23. 0x0000,0xff11,0x2121,0x1212,0x11ff,0x0000,
  24. 0x0000,0xf425,0x0000,0x0000,0x524f,0x0000,
  25. 0x0000,0xfa00,0x0000,0x0000,0x00af,0x0000,
  26. 0x0000,0xf425,0x0000,0x0000,0x524f,0x0000,
  27. 0x0000,0xff11,0x2121,0x1212,0x11ff,0x0000,
  28. 0x0000,0xffff,0xffff,0xfffF,0xffff,0x0000,
  29. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  30. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  31. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  32. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  33. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  34. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  35. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  36. 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  37.  
  38. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  39. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  40. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  41. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  42. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  43. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  44. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  45. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  46. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  47. 0xffff,0x0000,0x0000,0x0000,0x0000,0xffff,
  48. 0xffff,0x0000,0x0000,0x0000,0x0000,0xffff,
  49. 0xffff,0x0000,0x0000,0x0000,0x0000,0xffff,
  50. 0xffff,0x0000,0x0000,0x0000,0x0000,0xffff,
  51. 0xffff,0x0000,0x0000,0x0000,0x0000,0xffff,
  52. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  53. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  54. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  55. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  56. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  57. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  58. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  59. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
  60. 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
  61. };
  62.  
  63. struct Image bs1small =
  64. {
  65. 0,0,          /* LeftEdge, TopEdge */
  66. 87,23,2,     /* Width, Height, Depth */
  67. &bs1smallData[0],
  68. 3,0,       /* PlanePick, PlaneOnOff */
  69. NULL        /* Pointer to next Image */
  70. };
  71.  
  72.  
  73.  
  74. #define INTUITION_REV 0
  75. #define GRAPHICS_REV 0
  76. main()
  77. {
  78.  ULONG flags,mclass;
  79.  SHORT x,y,w,h,d;
  80.  USHORT mode;
  81.  UBYTE *name,c0,c1;
  82.  VOID OpenALL();
  83.  OpenALL();
  84.  
  85.  
  86.  /* ======Open een lores custom screen====== */
  87.  
  88.  y=0;
  89.  w=320;
  90.  h=200;
  91.  d=2; /* max 32 colors ! */
  92.  c0=0x00;
  93.  c1=0x01;
  94.  mode=NULL;
  95.  
  96.  Scrn=(struct Screen *)
  97.          make_screen(y,w,h,d,c0,c1,mode,NULL);
  98.  
  99.  /* ======open een borderless window ====== */
  100.  
  101.  x=y=0;
  102.  w=320;
  103.  h=200;
  104.  flags=ACTIVATE|NOCAREREFRESH|BORDERLESS|GIMMEZEROZERO;
  105.  NoBorder=(struct Window *)
  106.              make_window(x,y,w,h,NULL,flags,Scrn);
  107.  
  108.  /* ======geen screentitel====== */
  109.  
  110.  ClearMenuStrip(NoBorder);
  111.  
  112.  
  113.   r=NoBorder->RPort;
  114.  vp=ViewPortAddress(NoBorder);
  115.  
  116.  SetRGB4(r,0,0,0,0);
  117.  SetRGB4(r,1,15,15,15);
  118.  SetRGB4(r,2,0,0,15);
  119.  SetRGB4(r,3,7,7,7);
  120.  
  121.  
  122. for(;;)
  123. {
  124.  for(y=0, h=0;h<100;h+=23)
  125.  {
  126.   for(x=h;x<(320-87-h);x+=40)
  127.   {
  128.    DrawImage(r,&bs1small,(LONG) x, (LONG) y );
  129.    DrawImage(r,&bs1small,(LONG) (320-87-x), (LONG) (199-23-y) );
  130.    Delay(1L);
  131.   }
  132.   for(y=h;y<(199-23-h);y+=13)
  133.   {
  134.    DrawImage(r,&bs1small,(LONG) x, (LONG) y );
  135.    DrawImage(r,&bs1small,(LONG) (320-87-x), (LONG) (199-23-y) );
  136.    Delay(1L);
  137.   }
  138.   for(x=(320-87-h);x>=h;x-=40)
  139.   {
  140.    DrawImage(r,&bs1small,(LONG) x, (LONG) y );
  141.    DrawImage(r,&bs1small,(LONG) (320-87-x), (LONG) (199-23-y) );
  142.    Delay(1L);
  143.   }
  144.   for(y=(199-23-h);y>=h;y-=13)
  145.   {
  146.    DrawImage(r,&bs1small,(LONG) x, (LONG) y );
  147.    DrawImage(r,&bs1small,(LONG) (320-87-x), (LONG) (199-23-y) );
  148.    Delay(1L);
  149.   }
  150.  }
  151.  if( (mesg=(struct IntuiMessage *) GetMsg(NoBorder->UserPort)) != NULL)
  152.  {
  153.   ReplyMsg(mesg);
  154.   break;
  155.  }
  156. }
  157.  
  158.  
  159.  while( (mesg=(struct IntuiMessage *) GetMsg(NoBorder->UserPort)) != NULL)
  160.   ReplyMsg(mesg);
  161.  
  162.      CloseWindow(NoBorder);
  163.      CloseScreen(Scrn);
  164.      CloseLibrary(GfxBase);
  165.  
  166. }
  167.  /*========================================================================*/
  168.  
  169.  VOID OpenALL()
  170.  {
  171.  /* ======open Intuition====== */
  172.  
  173.  IntuitionBase=(struct IntuitionBase *)
  174.             OpenLibrary("intuition.library",INTUITION_REV);
  175.  
  176.  if(IntuitionBase==NULL)
  177.    exit(FALSE);
  178.  
  179.  /* ======open the Graphics Library====== */
  180.  
  181.  GfxBase=(struct GfxBase *)
  182.            OpenLibrary("graphics.library",GRAPHICS_REV);
  183.  
  184.  if(GfxBase==NULL)
  185.    exit(FALSE);
  186.  }
  187. make_window(x,y,w,h,name,flags,screen)
  188. SHORT x,y,w,h;
  189. UBYTE *name;
  190. ULONG flags;
  191. struct Screen *screen;
  192.  
  193. {
  194.  struct NewWindow NewWindow;
  195.  
  196.  NewWindow.LeftEdge = x;
  197.  NewWindow.TopEdge = y;
  198.  NewWindow.Width = w;
  199.  NewWindow.Height = h;
  200.  NewWindow.DetailPen = -1;
  201.  NewWindow.BlockPen = -1;
  202.  NewWindow.Title = name;
  203.  NewWindow.Flags = flags;
  204.  NewWindow.IDCMPFlags = MOUSEBUTTONS;
  205.  NewWindow.Type = CUSTOMSCREEN;
  206.  NewWindow.FirstGadget = NULL;
  207.  NewWindow.CheckMark = NULL;
  208.  NewWindow.Screen = screen;
  209.  NewWindow.BitMap = NULL;
  210.  NewWindow.MinWidth = 0;
  211.  NewWindow.MinHeight = 0;
  212.  NewWindow.MaxWidth = 0;
  213.  NewWindow.MaxHeight = 0;
  214.  
  215.  return(OpenWindow(&NewWindow));
  216.  
  217. }
  218.  
  219.  
  220. make_screen(y,w,h,d,color0,color1,mode,name)
  221. SHORT y,w,h,d;
  222. UBYTE color0,color1,*name;
  223. USHORT mode;
  224. {
  225.  struct NewScreen NewScreen;
  226.  
  227.  NewScreen.LeftEdge = 0;
  228.  NewScreen.TopEdge = y;
  229.  NewScreen.Width = w;
  230.  NewScreen.Height = h;
  231.  NewScreen.Depth = d;
  232.  NewScreen.DetailPen = color0;
  233.  NewScreen.BlockPen = color1;
  234.  NewScreen.ViewModes = mode;
  235.  NewScreen.Type = CUSTOMSCREEN;
  236.  NewScreen.Font = NULL;
  237.  NewScreen.DefaultTitle = name;
  238.  NewScreen.Gadgets = NULL;
  239.  NewScreen.CustomBitMap = NULL;
  240.  
  241.  return(OpenScreen(&NewScreen));
  242. }
  243.  
  244.  
  245.